# main.py - Flask应用程序的入口文件
from flask import Flask, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_cors import CORS
import config

# 创建Flask应用实例
app = Flask(__name__)

# 配置CORS
CORS(app)

# 配置数据库连接
# 这些配置从config.py文件中读取
app.config['SQLALCHEMY_DATABASE_URI'] = config.SQLALCHEMY_DATABASE_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = config.SQLALCHEMY_TRACK_MODIFICATIONS
app.config['SQLALCHEMY_ECHO'] = config.SQLALCHEMY_ECHO

# 初始化数据库
db = SQLAlchemy(app)

# 蓝图将在应用启动时导入和注册

# 首页路由 - 显示API信息
@app.route('/', methods=['GET'])
def index():
    """API首页，显示可用的接口"""
    return jsonify({
        'message': 'Flask用户管理系统API',
        'version': '1.0.0',
        'available_endpoints': {
            '用户登录  post /api/users/login': '用户登录',

        }
    })

# 测试数据库连接的路由
@app.route('/test-db', methods=['GET'])
def test_database():
    """测试数据库连接是否正常"""
    try:
        # 执行一个简单的数据库查询来测试连接
        result = db.session.execute(db.text('SELECT 1'))
        return jsonify({
            'success': True,
            'message': '数据库连接成功！'
        })
    except Exception as e:
        return jsonify({
            'success': False,
            'message': '数据库连接失败',
            'error': str(e)
        }), 500

# 应用启动入口
if __name__ == '__main__':
    # 创建数据库表
    with app.app_context():
        # 导入并注册蓝图
        from routes.user_routes import user_bp
        app.register_blueprint(user_bp)
        
        # 创建用户表结构
        db.session.execute(db.text("""
            CREATE TABLE IF NOT EXISTS users (
                id INT AUTO_INCREMENT PRIMARY KEY,
                userName VARCHAR(50) UNIQUE NOT NULL,
                passWord VARCHAR(100) NOT NULL,
                create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
                userId VARCHAR(50) UNIQUE
            )
        """))
        db.session.commit()
        print("数据库表创建完成！")
    
    # 启动Flask开发服务器
    print("启动Flask应用...")
    app.run(
        debug=True,
        host='0.0.0.0',
        port=3000
    )

